package beat

const FloatingRate = 0.1
const npcBiggerThan = 1.225 // npc level is bigger than the same role at lv of p

const RateBronze = 1.1
const RateSilver = 1.2
const RateGolden = 1.3
const RateLegend = 1.4
const RateNpcA = RateBronze * npcBiggerThan
const RateNpcB = RateSilver * npcBiggerThan
const RateNpcC = RateGolden * npcBiggerThan
const RateNpcD = RateLegend * npcBiggerThan
const RateNpcE = 2

const BaseMaxH = 6000 //increase by lv//MaxH increase: BaseMaxH*(1.1|1.2|1.3|1.4)
// const BaseMaxM = 640
const BasePower = 1600            //increase: 220|240|260|280
const BaseCriticalRate = 0.16     //increase: 0.15+0.08|0.15+0.16|0.15+0.24|0.15+0.32
const BaseElasticExceedRate = 0.1 //increase: 0.3|0.5|0.7|0.9 //elastic(random) exceed dmg rate
const BasePenetrateRate = 0.1     //increase: 0.2|0.3|0.4|0.5
const BasePeriod = 20000.0        //50ms //at lease 20ms
const BaseThreatRate = 1.0
const BaseCriticalMulti = 2.0 //increase: //2.1|2.2|2.3|2.4

// const BaseHasteRate = 0.1     //increase: 0.12|0.13|0.14|0.15 //instead by execPeriod
const BaseDeCritical = 0.2         //random to supress target critical
const BaseElasticResistRate = 0.10 //elastic(random) resist dmg rate
const BaseAmor = BaseMaxH * 0.05   //basic decrease dmg, shouldn't be too large//increase: BaseMaxH*constRate*(1.1|1.2|1.3|1.4)
const BaseDodgeRate = 0.02         //will evade dmg from target, only for T and lower lv
const BaseAmorLeatherThan = 1.88   //found in wow
const BaseAmorMailThan = 4.17      //Chain//found in wow
const BaseAmorPlateThan = 7.46     //found in wow

const (
	DmgTypeHurt         = 1
	DmgTypeHeal         = 2
	DmgTypeThreatHeal   = 92
	DmgTypeThreatResist = 93
	DmgTypeDie          = 99
)

const (
	RoleT = "T"
	RoleA = "A"
	RoleH = "H"
	RoleB = "B" //bot? not supported
)

var RateLvMap = map[string]float32{
	"Br": RateBronze,
	"Si": RateSilver,
	"Go": RateGolden,
	"Le": RateLegend,
	"NA": RateNpcA,
}
